<?xml version="1.0" encoding="utf-8"?>
<!--
                                                                                     
 h       t     t                ::       /     /                     t             / 
 h       t     t                ::      //    //                     t            // 
 h     ttttt ttttt ppppp sssss         //    //  y   y       sssss ttttt         //  
 hhhh    t     t   p   p s            //    //   y   y       s       t          //   
 h  hh   t     t   ppppp sssss       //    //    yyyyy       sssss   t         //    
 h   h   t     t   p         s  ::   /     /         y  ..       s   t    ..   /     
 h   h   t     t   p     sssss  ::   /     /     yyyyy  ..   sssss   t    ..   /     
                                                                                     
	<https://y.st./>
	Copyright © 2017 Alex Yst <mailto:copyright@y.st>

	This program is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program. If not, see <https://www.gnu.org./licenses/>.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<base href="https://y.st./en/weblog/2017/10-October/09.xhtml"/>
		<title>A new U-lock &lt;https://y.st./en/weblog/2017/10-October/09.xhtml&gt;</title>
		<link rel="icon" type="image/png" href="/link/CC_BY-SA_4.0/y.st./icon.png"/>
		<link rel="stylesheet" type="text/css" href="/link/main.css"/>
		<script type="text/javascript" src="/script/javascript.js"/>
		<meta name="viewport" content="width=device-width"/>
	</head>
	<body>
<nav>
	<p>
		<a href="/en/coursework/">Coursework</a> |
		<a href="/en/take-down/">Take-down requests</a> |
		<a href="/en/">Home</a> |
		<a href="/en/a/about.xhtml">About</a> |
		<a href="/en/a/contact.xhtml">Contact</a> |
		<a href="/a/canary.txt">Canary</a> |
		<a href="/en/URI_research/"><abbr title="Uniform Resource Identifier">URI</abbr> research</a> |
		<a href="/en/opinion/">Opinions</a> |
		<a href="/en/law/">Law</a> |
		<a href="/en/recipe/">Recipes</a> |
		<a href="/en/a/links.xhtml">Links</a> |
		<a href="/en/weblog/2017/10-October/09.xhtml.asc">{this page}.asc</a>
	</p>
	<hr/>
	<p>
		Weblog index:
		<a href="/en/weblog/memories">Memories</a> |
		<a href="/en/weblog/"><abbr title="American Standard Code for Information Interchange">ASCII</abbr> calendars</a> |
		<a href="/en/weblog/index_ol_ascending.xhtml">Ascending list</a> |
		<a href="/en/weblog/index_ol_descending.xhtml">Descending list</a>
	</p>
	<hr/>
	<p>
		Jump to entry:
		<a href="/en/weblog/2015/03-March/07.xhtml">&lt;&lt;First</a>
		<a rel="prev" href="/en/weblog/2017/10-October/08.xhtml">&lt;Previous</a>
		<a rel="next" href="/en/weblog/2017/10-October/10.xhtml">Next&gt;</a>
		<a href="/en/weblog/latest.xhtml">Latest&gt;&gt;</a>
			</p>
			<hr/>
</nav>
		<header>
			<h1>A new U-lock</h1>
			<p>Day 00947: <time>Monday, 2017 October 09</time></p>
		</header>
<img src="/img/CC_BY-SA_4.0/y.st./weblog/2017/10/09.jpg" alt="Customer Appreciation Week - Free LED Bulbs!" class="framed-centred-image" width="800" height="480"/>
<section id="general">
	<h2>General news</h2>
	<p>
		Since the nearby store doesn&apos;t stock U-locks, I tried walking to a distant store that I know does.
		However, they were out and had no idea when they&apos;d be getting more in stalk.
		Joy.
		That was a wasted couple hours.
		That also meant I still couldn&apos;t bike to Eugene to get my insurance issue fixed, so I still couldn&apos;t get my dental issues taken care of.
		Needless to say, I wasn&apos;t happy.
		Hoping not to have to wait quite so long to get my teeth worked on, I tried visiting a local bike shop.
		It&apos;s not too far, but it&apos;s quite a ways on foot, and I couldn&apos;t bike there without a lock.
		I wasn&apos;t entirely sure they&apos;d carry locks and not just bikes, but I was in luck.
		Their least-expensive U-locks were time and a half as expensive as the most-pricey ones from the other store, and their most-costly ones were over a hundred dollars in price.
		I can&apos;t afford to sink much money into a lock I don&apos;t know for sure will function, especially given my recent luck, so I went with the cheapest U-lock in stock.
		It seems heavier duty than my last U-lock, so it should hold.
		That said, it wasn&apos;t a matter of holding that was the problem with my last lock, was it?
		I remarked to the shopkeeper that I was glad to see that they didn&apos;t carry Bell-brand locks, as Bell-brand locks are crap and I lost my last bike due to one.
		The shopkeeper agreed that Bell-brand locks suck.
		I&apos;m not sure how widely-known of a fact this is, but apparently at least some bike-shop employees are well aware of how bad Bell-brand locks are.
	</p>
	<p>
		The key has some difficulty turning in this new lock, but with some extra pressure, it does turn.
		It doesn&apos;t simply hit a point in which no matter how hard you try to turn the lock, it won&apos;t budge.
		We&apos;ll see how well this lock works out, but I have a good feeling about it.
	</p>
	<p>
		Trying to cram <code>minestats</code> awareness into all of my mods is only going to make my mods all look gimmicky.
		I&apos;ve decided that for the most part, I&apos;ll only take <code>minestates</code> into account in mods that allow a player to have a server-wide effect.
		For example, the yellow beds mod allows a player to set a warp point that can be reached from anywhere on the server, so it&apos;ll tie into <code>minestats</code>.
		It&apos;s also worth noting that all of every player&apos;s warp points will likely be stored in <abbr title="random-access memory">RAM</abbr> at all times, so we don&apos;t want new players spamming warp points everywhere and then leaving the server forever!
		Instead, the longer a player&apos;s been there and the more mining and farming the player&apos;s done, the more we&apos;ll trust them with warp points.
		However, mods such as the shop mod and the block-protection mod that I&apos;m working on don&apos;t allow a player to have a server-wide effect.
		The shop can only be used by players near the actual shop node, and the block-protection nodes only protect the block in which that node rests.
		These nodes have a presence that is purely physical and doesn&apos;t require any external data to make function correctly.
		I&apos;d love to develop more <code>minestats</code>-aware mods, but I&apos;m the type that develops mods sparingly.
		If there&apos;s a need for a given functionality, I like to build something that&apos;ll provide it, but I don&apos;t build mods that define a bunch of decorative-only nodes or silly features.
		That might be why I was having such trouble with <code>minequest</code>.
		There were so many items that needed bonus powers, but I only wanted to define meaningful and useful bonus options; no fluff.
	</p>
	<p>
		Speaking of <code>minestats</code>, as I was headed to bed, I decided to try something to get <code>minestats</code> to count things such as corrals.
		I&apos;ve always wanted it to do that, but never been able to figure out how without getting it to likewise count a bunch of things that intuitively shouldn&apos;t be counted.
		It took only a couple minutes, but it showed me quite quickly why <code>minestats</code> can never work that way.
		The problem is that it needs to count nodes that drop something other than themselves while not counting nodes that drop alternate versions of themselves.
		Distinguishing between items that are alternate versions of the nodes and things that are other items entirely is not an easy task, and in my opinion, is quite impossible.
		We could check for certain callbacks in the node definitions, but that&apos;s not enough.
		Several dirt variations are still detected, though arguably, I think the naturally-occurring ones should be.
		The man-made ones from the <code>farming</code> mod shouldn&apos;t be though, and the nature of the creation of the <code>farming</code> soil isn&apos;t even in the node definitions, making it impossible to detect looking at nodes alone.
		The creation of soil lies in the hoe tools.
		A couple nodes from <code>xpanes</code> are also detected even with these extra checks, though I&apos;m not sure offhand why.
		Looking at the code, it seems that a second, unused version of each <code>xpanes</code> node is defined, and it drops the real node when mined.
		I&apos;d look into it further and do some more testing so I could send a pull request to the Minetest Game developers, but it&apos;d be pointless.
		I can&apos;t distinguish alternate versions of nodes that are created by an outside force, such as how hoes create soil.
		As long as that issue persists, which will be forever, there&apos;s no way to properly count nodes that drop non-related nodes.
		I can only count nodes that drop non-nodes.
		The reason I can get it to function when I make it count only non-nodes that get dropped is because by definition, non-nodes are not nodes, so they&apos;re not alternate versions of nodes.
		Some non-nodes are actually poorly-programmed alternate versions of nodes, but these are easily distinguished.
		In theory, there could be some false positives, but if the non-node appears to act like a node, we can simply assume it is one.
		There&apos;s still some fine-tuning I&apos;d love to do in how counting is performed, though I can&apos;t figure out logically how I&apos;d like it done, let alone programmatically.
		I want to separate out some grouped stuff that seems separable, but it&apos;d cause confusion for users if I actually implemented that.
		However, the items that are counted now are the ones that should stay counted and the items that are not are the ones that shouldn&apos;t be.
		No major changes should be made.
	</p>
</section>
<section id="dreams">
	<h2>Dream journal</h2>
	<p>
		I dreamed that a while back, I&apos;d hidden something in a wooden bear stature in Salem.
		The head of this stature was detachable, and the thing was hidden beneath the head.
		When I later went to show my mother the thing, because she was curious about it, I found the bear statue was missing.
		As I don&apos;t visit Salem much, I wasn&apos;t sure when it had vanished or to where.
		Eventually, I found it, but it&apos;d been shortened and its head reworked to be that of a racoon.
		Additionally, the three owners of the statue were practically guarding it, so I couldn&apos;t access my hidden treasure.
		With the reworking of the statue, I was sure they&apos;d&apos;ve found and removed the treasure anyway.
		I explained the situation to my mother, and she seemed frustrated over my loss.
		I wasn&apos;t worried though, and said that I couldn&apos;t remember what I&apos;d hidden, but the fact that I&apos;d hidden it meant it must not&apos;ve been very important.
		If it&apos;d been important, I&apos;d&apos;ve kept it somewhere actually safe, such as at home.
		Hiding it&apos;d been a game.
	</p>
	<p>
		As we walked away, I was formulating a new ideas for hiding treasures for fun.
		A number of keys could be hidden, and all the keys would be needed to open a hidden locked box.
		As there&apos;d be no hint near the keys or the box where to find the other things, getting into the box would require a lot of luck.
	</p>
	<p>
		I turned around in time to see an elderly woman pull a gun on my mother in a parking-garage-like place that we&apos;d walked into.
		I warned my mother, but it was too late.
		The person shot my mother dead.
		She tried to shoot me dead too, but for some reason, the bullets didn&apos;t cause me any pain or injury, though they did leave a bloody hole in my shirt.
		Come to think of it, this is the first dream I can recall in which I couldn&apos;t feel sensations such as pain.
		I don&apos;t think I felt <strong>*anything*</strong> in the dream.
		The lack of pain might be why I was able to keep going and why the wounds caused no damage, as my brain might not&apos;ve been able to interpret my dream body as having taken actual damage when no pain was involved, as it isn&apos;t used to that.
		I managed to get the gun away from her, then I shot her several times as well.
		I also accidentally shot a bystander that she ran over to as well.
		At this point, I must&apos;ve been losing my grip on reality, as I knew I could rewind time, so I did that to unshoot the bystander.
		However, rewinding time seemed to erase anyone that had been injured, aside from myself.
		At this point, people started swarming me, and I had no choice but to shoot them to keep them away.
		Any thine I for some reason rewound time again, anyone injured vanished, but new people that hadn&apos;t been there in the last iteration would show up from the entrances.
		At one point, when I&apos;d nearly been overrun, someone made some figure of speech that involved the word &quot;bomb&quot;, so I started floating up to the ceiling, pulling bombs from nowhere, and throwing them down at the crowd to keep them away from me.
		I never did figure out the reason they were trying to get me, but soon, I woke up.
	</p>
</section>
<section id="university">
	<h2>University life</h2>
	<p>
		With the acquisition of a bike lock taking much longer than planned, I didn&apos;t have time to complete the essay on that stupid Windows-based application that I&apos;d planned to.
		I did make progress though.
		I completed two introductory sections and I did enough research that I think I can get the same data we&apos;re looking at on Debian from two command line tools.
		I have more errands tomorrow, but this time, I can go out on bike because I have a lock.
		I should have plenty of time to complete the assignment.
	</p>
</section>
		<hr/>
		<p>
			Copyright © 2017 Alex Yst;
			You may modify and/or redistribute this document under the terms of the <a rel="license" href="/license/gpl-3.0-standalone.xhtml"><abbr title="GNU&apos;s Not Unix">GNU</abbr> <abbr title="General Public License version Three or later">GPLv3+</abbr></a>.
			If for some reason you would prefer to modify and/or distribute this document under other free copyleft terms, please ask me via email.
			My address is in the source comments near the top of this document.
			This license also applies to embedded content such as images.
			For more information on that, see <a href="/en/a/licensing.xhtml">licensing</a>.
		</p>
		<p>
			<abbr title="World Wide Web Consortium">W3C</abbr> standards are important.
			This document conforms to the <a href="https://validator.w3.org./nu/?doc=https%3A%2F%2Fy.st.%2Fen%2Fweblog%2F2017%2F10-October%2F09.xhtml"><abbr title="Extensible Hypertext Markup Language">XHTML</abbr> 5.2</a> specification and uses style sheets that conform to the <a href="http://jigsaw.w3.org./css-validator/validator?uri=https%3A%2F%2Fy.st.%2Fen%2Fweblog%2F2017%2F10-October%2F09.xhtml"><abbr title="Cascading Style Sheets">CSS</abbr>3</a> specification.
		</p>
	</body>
</html>

